Creating data aggregations can be a processing intensive operation. For example, aggregations or collections of transactions that are grouped by time period or another categorization may seem to be a logically simple operation. However, maintaining data aggregations over large datasets or for a large number of users can require significant processing and storage resources, which can result in significant expense. As one example, suppose transactions for a large number of users are housed in a data store. These users might request or desire the aggregate data for their transactions across various levels of granularity. For example, some users might desire aggregate data on a per-hour basis, a per-day basis, and a per-week basis. When a particular transaction is processed and stored in a data warehouse, each of these aggregations is affected and must be updated. Additionally, idempotence should be maintained across all of the aggregations as well. Accordingly, maintaining data aggregations presents a significant challenge for transaction processors and data warehousing providers.